package com.huanf.controller;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.huanf.domain.User;
import com.huanf.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author: 35238
 * 功能: BaseMapper接口提供的分页功能
 * 时间: 2024-01-01 18:14
 */
@RestController
public class PageController {

    @Autowired//自动装配的注解，用于使用我们写的UserService接口
    private UserMapper userMapper;

    //----------------------------------基本使用------------------------------------

    @GetMapping("/page1") //浏览器访问 http://localhost:8050/page1
    public String page1() {
        //每页显示3条数据，我们访问第2页，也就是控制台会输出第2页的3条数据
        Page<User> user = new Page<>(2,3);
        //null表示对所有数据的分页
        userMapper.selectPage(user,null);
        //由于我们在yml配置了日志，所以控制台会打印出你分页后的数据
        return "请回idea控制台查看";
    }

    //-------------------------------分页相关数据的获取-------------------------------

    @GetMapping("/page2") //浏览器访问 http://localhost:8050/page2
    public String page2() {
        //每页显示3条数据，我们访问第2页，也就是控制台会输出第2页的3条数据。注意索引写0或者1，都表示第1页，写2就表示第2页
        Page<User> user = new Page<>(2,3);
        userMapper.selectPage(user,null);//这行要写，不然下面的几个参数是获取不到的
        System.out.println("当前页码是: "+user.getCurrent());
        System.out.println("每页输出的条数是: "+user.getSize());
        System.out.println("总页数是: "+user.getPages());
        System.out.println("总记录数是: "+user.getTotal());
        System.out.println("是否有下一页: "+user.hasNext());
        System.out.println("是否有上一页: "+user.hasPrevious());
        return "请回idea控制台查看";
    }
    //注意如果某条数据里有逻辑字段，并且逻辑字段不为空，并且该条数据已经被逻辑删除了，那么此时执行这里的查询方法，该条数据即使符合条件也不会被查询到

}
